---
title: Manage hearing locations
summary: Maintain hearing-location reference data (create, retrieve, update, delete) and validate state codes, guarding delete when active schedule rows exist.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
operation_id: OP-CLL-014
trigger: Reference-data maintenance user adds, edits, or deletes a hearing location
---

# Manage hearing locations

Maintain hearing-location reference data (create, retrieve, update, delete) and validate state codes, guarding delete when active schedule rows exist.

| Field | Value |
|---|---|
| **Operation ID** | OP-CLL-014 |
| **Trigger** | Reference-data maintenance user adds, edits, or deletes a hearing location |
| **Inputs** | Business-object criteria properties set by the caller (see linked SQL parameter tables) |
| **Outputs** | Persisted/retrieved `clsHearingLocationInfo` state |
| **Primary components** | `clsHearingLocationInfo, clsHearingLocation` |
| **Entry point** | `SAIF.Business.Claim.Legal\LegalNet\clsHearingLocationInfo.vb, TableMaint\clsHearingLocation.vb` |

## Steps

1. Validate the request against applicable business rules: [BR-CLM-LGL-012](../business-rules.md#br-clm-lgl-012-hearing-location-requires-valid-code%2C-name%2C-state%2C-and-city), [BR-CLM-LGL-013](../business-rules.md#br-clm-lgl-013-hearing-location-cannot-be-deleted-while-referenced-by-schedule-rows)
   - On failure: validation errors are collected and returned to the caller; the operation does not proceed.
2. Execute the underlying data access for `clsHearingLocationInfo` against: [DB-CLL-032](../sql/SQL-032-hearinglocationinfo.md), [DB-CLL-062](../sql/SQL-062-hearinglocation.md), [DB-CLL-063](../sql/SQL-063-hearinglocation.md), [DB-CLL-065-104](../sql/SQL-065-104-attorneyconflict,.md)
   - Tables affected: [HEARING_LOCATION](../database-tables.md#hearing_location), [SCHEDULE](../database-tables.md#schedule), [ALL_STATES](../database-tables.md#all_states)
3. Return the resulting object graph (or success/failure status) to the caller.

## Process flow

```mermaid
flowchart TD
	Start([Reference-data maintenance user adds, edits, or deletes a hearing location]) --> Validate[Validate business rules]
	Validate --> Decision{Valid?}
	Decision -->|No| EndErr([Return validation errors])
	Decision -->|Yes| Exec[Execute data access for clsHearingLocationInfo]
	Exec --> EndOk([Return result])
```

## Failure and edge-case behavior

- Validation failure: the operation returns collected errors without persisting any change.
- `ValidateState` on this path is **non-parameterized** (raw string concatenation) — see [business-rules.md](../business-rules.md#flagged-findings) for the flagged SQL-injection risk.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- `SAIF.Business.Claim.Legal\` (clsHearingLocationInfo, clsHearingLocation)